#ifndef Vegetal_h
#define Vegetal_h

#include"Entity.h"
#include"Position.h"

class Ecosystem;

using namespace std;

class Vegetal : public Entity {
public:
	// Constructor
	Vegetal(Ecosystem & _eco, Position const& _position, string _race, int _expension)
	: Entity(_eco, _position, _race, 1), expension_factor(_expension) { }

	/**
	 * This method changes the status of the Vegetal. By default, a vegetal doest nothing...
	 */
	void update();

	/**
	 * Type of the entity: Vegetal
	 *
	 * @return TypeEntity VEGETAL
	 */
	TypeEntity getTypeEntity() { return VEGETAL; }

	/**
	 * Virtual destructor
	 */
	virtual ~Vegetal() {}

	/**
	 * Type of the entity (Animal or Vegetal)
         *
         *  @return Type of the entity (Vegetal)
	 */
        TypeEntity getTypeEntity() const {
            return VEGETAL;
        }

protected:
	int expension_factor;
};

#endif // Vegetal_h
